import axios from 'axios'
import {getToken, clearToken} from './token'
import { history } from './history'
import { message } from 'antd';
 

const axios_request = axios.create({
  baseURL: "/api/",
  headers: { 'Content-Type': 'application/json' },
  timeout: 5000
})

const axios_req = axios.create({
  baseURL: "/client/",
  headers: { 'Content-Type': 'application/json' },
  timeout: 5000
})

// 添加请求拦截器
axios_request.interceptors.request.use((config)=> {
    const token = getToken()
    config.data = JSON.stringify(config.data);
    if (token) {
      config.headers.Authorization = {token}
    }
    return config
  }, (error)=> {
    return Promise.reject(error)
})

// 添加响应拦截器
axios_request.interceptors.response.use((response)=> {
    // 2xx 范围内的状态码都会触发该函数。
    return response.data
  }, (error)=> {
    // 超出 2xx 范围的状态码都会触发该函数。
    if (error.response.status === 401) {
      // 删除token
      clearToken()
      // 跳转到登录页
      history.push('/login')
    }
    message.error('This is an error message');
    return Promise.reject(error)
})


// 添加请求拦截器
axios_req.interceptors.request.use((config)=> {
  const token = getToken()
  config.data = JSON.stringify(config.data);
  if (token) {
    config.headers.Authorization = {token}
  }
  return config
}, (error)=> {
  return Promise.reject(error)
})

// 添加响应拦截器
axios_req.interceptors.response.use((response)=> {
  // 2xx 范围内的状态码都会触发该函数。
  return response.data
}, (error)=> {
  // 超出 2xx 范围的状态码都会触发该函数。
  if (error.response.status === 401) {
    // 删除token
    clearToken()
    // 跳转到登录页
    history.push('/login')
  }
  message.error('This is an error message');
  return Promise.reject(error)
})

export { axios_request, axios_req }